<?php
/**
 * Created by PhpStorm.
 * User: Tom
 * Date: 2018/7/7
 * Time: 11:53
 */

namespace app\home\controller;


use think\Controller;

class Test extends Controller
{
    public function index()
    {
        $tab="jiayou";
        /*$where=[];
        $list=db($tab)->where($where)->find();
        dump($list);*/

        print_r($this->get_db_column_comment('jiayou' ));

        return $this->fetch();

    }

    public function test()
    {
       dump(input('post.'));
    }

    public function uploadone(){
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('idpic');

        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                // 成功上传后 获取上传信息
                // 输出 jpg
                return json(['code'=>200,'file'=>$info->getSaveName()]);
            }else{
                // 上传失败获取错误信息
                return json(['code'=>400,'message'=>$file->getError()]);
            }
        }
    }

    public function uploadback(){
        // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('idpic_back');

        if($file){
            // 移动到框架应用根目录/public/uploads/ 目录下
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            //$info = $file->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                return json(['code'=>200,'file'=>$info->getSaveName()]);
            }else{
                return json(['code'=>400,'message'=>$file->getError()]);
            }
        }

    }


    /**
     * 获取数据库字段注释
     *
     * @param string $table_name 数据表名称(必须，不含前缀)
     * @param string $field 字段名称(默认获取全部字段,单个字段请输入字段名称)
     * @param string $table_schema 数据库名称(可选)
     * @return string
     */
    function get_db_column_comment($table_name = '', $field = true, $table_schema = ''){
        // 接收参数
        $database = config('database');
        $table_schema = empty($table_schema) ? $database['database'] : $table_schema;
        $table_name = $database['prefix'] . $table_name;

        // 缓存名称
        $fieldName = $field === true ? 'allField' : $field;
        $cacheKeyName = 'db_' . $table_schema . '_' . $table_name . '_' . $fieldName;

        // 处理参数
        $param = [
            $table_name,
            $table_schema
        ];

        // 字段
        $columeName = '';
        if($field !== true){
            $param[] = $field;
            $columeName = "AND COLUMN_NAME = ?";
        }

        // 查询结果
        $result = Db :: query("SELECT COLUMN_NAME as field,column_comment as comment FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ? AND table_schema = ? $columeName", $param);
        // pp(Db :: getlastsql());
        if(empty($result) && $field !== true){
            return $table_name . '表' . $field . '字段不存在';
        }

        // 处理结果
        foreach($result as $k => $v){
            if(strpos($v['comment'], '#*#') !== false){
                $tmpArr = explode('#*#', $v['comment']);
                $data[$v['field']] = json_decode(end($tmpArr), true);
            }
        }

        // 字段注释格式不正确
        if(empty($data)){
            return $table_name . '表' . $field . '字段注释格式不正确';
        }

        return count($data) == 1 ? reset($data) : $data;
    }

}